package com.back.service;

import com.back.entity.CompanyVerificationLog;
import com.back.dto.CompanyVerificationDTO;
import com.back.vo.CompanyVerificationLogVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  企业认证记录服务接口
 * </p>
 *
 * @author liyang
 * @since 2025-04-26
 */
public interface ICompanyVerificationLogService extends IService<CompanyVerificationLog> {

    /**
     * 提交企业认证申请
     * @param companyId 企业ID
     * @param verificationDTO 认证信息
     * @return 认证记录
     */
    CompanyVerificationLogVO submitVerification(Long companyId, CompanyVerificationDTO verificationDTO);

    /**
     * 审核企业认证
     * @param id 企业认证记录ID
     * @param adminId 管理员ID
     * @param status 审核状态
     * @param reason 审核意见
     * @return 审核后的认证记录
     */
    CompanyVerificationLogVO reviewVerification(Long id, Long adminId, String status, String reason);

    /**
     * 获取企业认证记录列表
     * @param page 分页对象
     * @param status 审核状态
     * @return 企业认证记录列表
     */
    IPage<CompanyVerificationLogVO> getVerificationLogList(Page<CompanyVerificationLog> page, String status);

    /**
     * 获取企业认证记录详情
     * @param id 认证记录ID
     * @return 认证记录详情
     */
    CompanyVerificationLogVO getVerificationLogDetail(Long id);

    /**
     * 获取企业的认证历史记录
     * @param companyId 企业ID
     * @return 认证历史记录列表
     */
    List<CompanyVerificationLogVO> getCompanyVerificationHistory(Long companyId);
}
